package com.example.design.创建型设计模式.工厂方法模式;

public class FactoryMain {
    public static void main(String[] args) {
        ShapeFactory circleFactory = new CircleFactory();
        Shape circle = circleFactory.createShape();
        circle.draw(); // 输出: Drawing a Circle

        ShapeFactory rectangleFactory = new RectangleFactory();
        Shape rectangle = rectangleFactory.createShape();
        rectangle.draw(); // 输出: Drawing a Rectangle
    }
}

/*
在这个示例中，工厂方法模式通过 ShapeFactory 接口和其具体实现类（如 CircleFactory 和 RectangleFactory）封装了创建对象的逻辑，
使得客户端代码与具体产品解耦。这种模式非常适合于需要扩展的新产品类而不修改现有代码的场景。根据需要增加新图形类型，只需增加一个新的产品类及相应的工厂类即可，符合开放-封闭原则。
*/